#pragma once

#include "GamePart.h"


namespace _DATAPARTFACTORY_
{
	namespace _GAME_
	{
		class HullFactory
			:public GamePartFactory
		{
		public:

			
			HullFactory(void);
			~HullFactory(void);

			_FOGGE_::_GDB_::aDataPartBase* LoadPart(TiXmlNode* ptrNode);
			
			_FOGGE_::_GDB_::aDataPartBase* CreatePart();

		};
	}
}

namespace _DATAPART_
{
	namespace _GAME_
	{

		class Hull:
			public GamePart
		{
			friend _DATAPARTFACTORY_::_GAME_::HullFactory;
			FoDeclareRTTI;
		public:
			enum ePartType
			{
				ePT_PrimaryWeapon,
				ePT_SecondaryWeapon,
				ePT_Shield,
				ePT_Engine,
				ePT_Function,
				ePT_Count
			};

			Hull(void);
			~Hull(void);

			GamePart* AttachPart(GamePart* ptrPart,ePartType partType);
			
		protected:

			_FOGGE_::foInt m_iDurability;
			_FOGGE_::foInt m_iArmor;

			void CopyFrom(aDataPartBase* ptrSource);

			
		};
	}
}
